import axiox from 'axios'

// 导入 store/index.js ,因为要使用这里的state中的token
import store from '@/store'
import router from '../router'

// 创建axios的实例，这个实例中，可以对axios进行全局的配置
// 得到的request也是axios，只不过名字不能再叫axios，因为重名了
const request = axiox.create({
  baseURL: 'http://www.liulongbin.top:3008/'
})

// const request2 = axiox.create({
//   baseURL: 'http://www.itcbc.com'
// })

// 通过请求拦截器来设置请求头
// 添加请求拦截器
request.interceptors.request.use(
  function (config) {
    // 判断：如果token是非数字 字母 下划线组成的，也要清除token
    if (config.url.startsWith('/my/')) {
      // 判断 如果token是非数字字母下滑划线 说明token是假的 也要清除token user 跳转
      if (!/^Bearer \w+\.\w+\.\w+$/.test(store.state.user.token)) {
        store.commit('user/updateToken', '')
        store.commit('user/updateUser', {})
        router.push('/login')
        return
      }
      // 组件中的$store===导入的store
      config.headers.Authorization = store.state.user.token
    }
    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)

export default request
